Immix Garbage Collection: Fast Collection, Space Efficiency, and Mutator Locality
نویسندگان
چکیده
No current garbage collector combines space efficiency, low collector times, and mutator (application) locality for contemporaneously allocated objects. For example, free-list allocation coupled with mark-sweep collection achieves space efficiency, but poor mutator locality. On the other hand, contiguous (bump-pointer) allocation with copying collection provides mutator locality but poor space efficiency since it requires reserving half the heap for copying in case all objects survive. This paper presents an algorithm that obtains space efficiency, low collection times, and mutator locality in a single regime. We call this garbage collector immix, which means to intimately commingle. The immix heap is organized hierarchically into blocks of contiguous memory, each consisting of N fixed size lines. Immix tracks memory use at a line granularity. Immix bump-allocates objects into one or more contiguous free lines to attain mutator locality. To attain space efficiency, immix uses mark-sweep collection to identify free lines. When needed to eliminate fragmentation, immix mixes copying and mark-sweep collection in a unique way to implement opportunistic single pass compaction. We demonstrate immix as a whole heap collector, as a component of a generational collector, and as a mostly non-moving collector. Our experimental results demonstrate that immix comprehensively and uniformly outperforms state-of-the-art whole heap mark-sweep, mark-compact, and semi-space collectors on a range of heap sizes on multiple architectures. Immix is the first collector to attain simultaneously space efficiency, low garbage collection times, and mutator locality.
منابع مشابه
Scalable Garbage Collection with Guaranteed MMU
Regional garbage collection offers a useful compromise between real-time and generational collection. Regional collectors resemble generational collectors, but are scalable: our main theorem guarantees a positive lower bound, independent of mutator and live storage, for the theoretical worst-case minimum mutator utilization (MMU). The theorem also establishes upper bounds for worst-case space u...
متن کاملComprehensive Distributed Garbage Collection by Tracking Causal Dependencies of Relevant Mutator Events
Comprehensive distributed garbage collection an objectoriented distributed systems has mostly been addressed via distributed versions of graph-tracing algorithms, a legacy of centralised garbage collection techniques. Two features jeopardise the scalability of these approaches: the bottleneck associated with having t o reach a global consensus before any resource can actually be reclaimed, and ...
متن کاملCache-Conscious Copying Collectors
Garbage collectors must minimize the scarce resources of cache space and off-chip communications bandwidth to optimize performance on modern single-chip computer architectures. Strategies for achieving these goals in the context of copying garbage collection are discussed. A multi-processor mutator/collector system is analyzed. Finally, the Intel 80860XP architecture is studied.
متن کاملA First Implementation of the DMOS Garbage Collector
The DMOS, (Distributed Mature Object Space [Hudson et al. 1997]), garbage collection algorithm represents a step forward in distributed garbage collection. The algorithm possesses many properties which are desirable and/or essential for a distributed garbage collection mechanism. These properties are: safety, completeness, incremental, asynchronous, decentralization and non-disruptiveness. To a...
متن کاملReplication-Based Incremental Copying Collection
We introduce a new replication-based copying garbage collection technique. We have implemented one simple variation of this method to provide incremental garbage collection on stock hardware with no special operating system or virtual memory support. The performance of the prototype implementation is excellent: major garbage collection pauses are completely eliminated with only a slight increas...
متن کامل